import request from '@/utils/request';
import type { BaseBeanModel, ResponsePageData, ResponseBaseData, QueryParamModel } from '@/api/model/baseModel';
const basePath = '/appsys/ConnectCenter/AppDataBaseRest';
/** 单表 */
export interface SysDataBaseDto extends BaseBeanModel {
  /** 标识 */
  id?: string;
  /** 名称 */
  name?: any;
  /** 状态 */
  isUsed?: any;
  /** 用户 */
  userName?: any;
  /** 口令 */
  passWord?: any;
  /** 驱动 */
  driver?: any;
  /** 状态 */
  urlValue?: any;
  classId?: any;
}

/**
 * 获取分页数据
 * @param param 表格参数
 * @param id 树节点id
 * @returns 表格数据
 */
export function listSysDataBasePage(param: QueryParamModel, id: string): Promise<ResponsePageData<SysDataBaseDto>> {
  return request.post(`${basePath}/searchByPage/${id}/v1`, param);
}

/**
 * 根据id加载数据
 * @param id 选中行id
 * @returns 表单数据
 */
export function getSysDataBase(id: string): Promise<ResponseBaseData<SysDataBaseDto>> {
  return request.get(`${basePath}/get/${id}/v1`);
}

/**
 * 保存表单数据
 * @param form 表单数据
 */
export function saveSysDataBase(form: SysDataBaseDto): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/insertDataBase/v1`, form);
}

/**
 * 编辑保存表单数据
 * @param form 编辑表单数据
 */
export function editSaveSysDataBase(form: SysDataBaseDto): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/updateDataBase/v1`, form);
}

/**
 * 根据id集合删除数据
 * @param ids 选中行id集合
 */
export function delSysDataBase(ids: [string]): Promise<ResponseBaseData<any>> {
  return request.delete(`${basePath}/deleteConnectTypeByIds/v1`, { data: ids });
}

/**
 * 启用
 * @param id 选中行id
 */
export function startDataBase(id: string): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/startDataBase/${id}/v1`);
}

/**
 * 禁用
 * @param id 选中行id
 */
export function stopDataBase(id: string): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/stopDataBase/${id}/v1`);
}

/**
 * 连接测试
 * @param param 表单数据
 */
export function testDataBase(param: any): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/testDataBase/v1`, param);
}
